// #include <stdio.h>
// #include <stdlib.h>
// #include "windows.h"
//
// typedef struct LinkNode {
//     int data;
//     struct LinkNode* next;
// } LinkNode;
//
// typedef struct LinkList {
//     LinkNode* head;
// } LinkList;
//
// LinkList* LinkInit() {
//     LinkList* list = (LinkList*)malloc(sizeof(LinkList));
//     if (list == NULL) {
//         exit(1);
//     }
//     list->head = (LinkNode*)malloc(sizeof(LinkNode));
//     list->head->next = NULL;
//     return list;
// }
//
// void LinkInsert(LinkList* list, int data) {
//     LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));
//     if (newNode == NULL) {
//         perror("malloc");
//         exit(1);
//     }
//     newNode->data = data;
//     newNode->next = NULL;
//     LinkNode* current = list->head;
//     while (current->next != NULL) {
//         current = current->next;
//     }
//     current->next = newNode;
// }
//
// void printLinkList(LinkList* list) {
//     LinkNode* current = list->head->next;
//     while (current != NULL) {
//         printf("%d ", current->data);
//         current = current->next;
//     }
//     printf("\n");
// }
//
// void FreeLinkList(LinkList* list) {
//     if (list == NULL) {
//         return;
//     }
//     LinkNode* current = list->head;
//     while (current != NULL) {
//         LinkNode* next = current->next;
//         free(current);
//         current = next;
//     }
//     free(list);
// }
//
// void PublicElem(LinkList* A,LinkList* B,LinkList* C) {
//     if (A == NULL || B == NULL || C == NULL ||
//         A->head == NULL || B->head == NULL || C->head == NULL) {
//         return;
//         }
//     LinkNode* a=A->head->next;
//     LinkNode* b=B->head->next;
//     LinkNode* c=C->head;
//     while (a!=NULL&&b!=NULL) {
//         if(a->data<b->data) {
//             a=a->next;
//         }else if(a->data>b->data) {
//             b=b->next;
//         }else {
//             LinkNode* newNode=(LinkNode*)malloc(sizeof(LinkNode));
//             if(newNode==NULL) {
//                 return;
//             }
//             newNode->data=a->data;
//             newNode->next=NULL;
//
//             c->next=newNode;
//             c=c->next;
//
//             a=a->next;
//             b=b->next;
//         }
//     }
//     c->next=NULL;
// }
//
// int main() {
//     LinkList* A=LinkInit();
//     LinkList* B=LinkInit();
//     LinkList* C=LinkInit();
//
//     LinkInsert(A,1);
//     LinkInsert(A,3);
//     LinkInsert(A,4);
//     LinkInsert(A,6);
//     LinkInsert(A,9);
//
//     LinkInsert(B,2);
//     LinkInsert(B,3);
//     LinkInsert(B,6);
//     LinkInsert(B,7);
//     LinkInsert(B,9);
//
//     printf("A LinkList:");printLinkList(A);
//     printf("B LinkList:");printLinkList(B);
//
//     PublicElem(A,B,C);
//
//     printf("C LinkList:");printLinkList(C);
//
//     FreeLinkList(A);
//     FreeLinkList(B);
//     FreeLinkList(C);
//     return 0;
// }